Optimization of buffer sizes in routers, switches or bridges is difficult to achieve. Excessively large buffers lead to higher costs for those network elements that include them and also to performance issues such as high latency. In contrast, small buffers are cheaper but also increase packet loss for unpredictable bursty traffic. For higher layer applications like Transmission Control Protocol (“TCP”), used, for example, for file transfers and web-browsing, packet loss triggers a reduction in traffic sending rate. This in turn causes lower throughput and greater file download and response times. The effect of buffer size on TCP performance is dependent on a number of parameters and on the specific circumstances, taking into account traffic and network configuration. A paper by D. Wischik and N. McKeown “Part 1: Buffer Sizes for Core Routers”, ACM SIGCOMM Computer Communication Review, Volume 35, Number 2, July 2005, hereby incorporated by reference, discusses some of the considerations involved in determining suitable buffer sizes.
Ethernet back-pressure is a hop-by-hop congestion control mechanism. In time of congestion, where a node has insufficient buffer capability to accommodate all the traffic that is being sent, the congested node can signal its upstream neighbour to stop transmitting data using a PAUSE message, as set out in IEEE Standard 802.3-2005 at 31B.3 “Detailed specification of PAUSE operation”. The PAUSE message instructs the sending upstream node to stop transmitting for set period of time. If, as a result of temporarily stopping its transmission, the upstream node also becomes congested, it can also transmit a PAUSE message to the node upstream from it, and so on. Thus, when there is congestion, it may lead to utilizing buffers at multiple nodes to hold packets. There is a risk that, under some conditions, utilizing the PAUSE mechanism may jam an entire network as the PAUSE instruction propagates upstream over multiple nodes.